#define DEBUG
#include <cstdio>
#include <cstring>
#define MAXN 100

using namespace std;

int main() {
  FILE *a=fopen("1764.in", "r"), *b=fopen("1764.out", "r");
  int n, m, max, fn;
  static bool book[MAXN+1][MAXN+1];
  static int f[MAXN+1][MAXN+1];
  fscanf(a, "%d %d %d %d", &n, &m, &max, &fn);
  memset(book, 0, sizeof(book));
  for (int i=1; i<=m; i++) {
    int x, y;
    fscanf(a, "%d %d", &x, &y);
    book[x][y]=true;
  }
  for (int i=1; i<=n; i++) {
    fscanf(b, "%d", f[1]+i);
  }
  for (int i=2; i<=n; i++) {
    for (int j=1; j<=n-i+1; j++) {
      f[i][j] = f[i-1][j]+f[i-1][j+1];
      f[i][j] = book[i][j] ? 0 : f[i][j];
    }
  }

  if (fn==f[n][1]) {
    printf("YES\n");
  } else {
    printf("NO:%d\n", f[n][1]);
    return -1;
  }

  return 0;
}
